#include "head.h"

int mkdirFunc(const char*addr,const char*dirname)
{
    //传来的地址是/usr1/....所以先分割字符串，把usr1去掉
    //也可能传来 . ..,但是不用考虑


    char temp[200]={0};
    strcpy(temp,addr);
    char **segments=NULL;
    int count=split_str(temp,&segments);
    bzero(temp,sizeof(temp));
    for(int i=1;i<count;i++)
    {
        strcat(temp,"/");
        strcat(temp,segments[i]);  
    }
    printf("temp=%s\n",temp);

    char dir_real_addr[200]={0};
    strcpy(dir_real_addr,base_addr);
    strcat(dir_real_addr,temp);//得到真实目录；
    strcat(dir_real_addr,dirname);//得到该目录的完整地址
    /* strcpy(dir_real_addr,cur_real_addr); */
    int ret=access(dir_real_addr,F_OK);//判断该目录是否已经存在
    if(ret==0)//存在，继续判断是文件还是目录
    {
        DIR* dirp=opendir(dir_real_addr);//判断是目录还是文件
        if(dirp!=NULL)//是相同的目录，不能创建
        {
            printf("exit same dir,cannot mkdir again!\n");
            return -1;
        }
    }
    //走到这说明该目录不存在
    mode_t mode;
    sscanf("777","%o",&mode);
    ret=mkdir(dir_real_addr,mode);
    ERROR_CHECK(ret,-1,"mkdir");
    printf("mkdir success!\n");

    for(int i=0;i<count;i++)
    {
        free(segments[i]);
    }
    free(segments);

    return 0;
}
